// 严格模式
"use strict";

// 1.异常语法
    try {
        //在这里运行代码
        //throw ;  // 抛出异常
    } catch(err) {
        //在这里处理错误
    }

    function funcmessage(x) {
         try {
             if(x < 10){
                 alert('您输入的内容是正确的' + x);
             }else {
                  throw '你输入的内容大于10';
             }

         }catch (e) {

             alert('抛出异常' + e);
         }finally {

         }
    }

    //代码执行流程
// 1.先执行try { ... }的代码；
// 2、执行到出错的语句时，后续语句不再继续执行，转而执行catch (e) { ... }代码
// 3、最后执行finally { ... }代


//  2、错误类型  Error对象表示错误
  try {

  }catch (e) {
      if(e instanceof TypeError){
          alert('Type error!');
      }else if (e instanceof Error){
          alert(e.message);
      }else {
          alert('Other Error' + e);
      }
  }

// 3.函数捕获  如果异常没有被捕获到  内层函数--> 外层函数-->沿着函数调用链向上抛出 ---->JavaScript引擎捕获


//  4.异步异常捕获
function buttonClick() {
    var button = document.getElementById('calc');

    button.onclick = function () {
        var  x = parseFloat(document.getElementById('x').value);
        var  y = parseFloat(document.getElementById('y').value);
        var  r;
        try {
            if (isNaN(x) || isNaN(y)) {
                throw new Error('输入有误');
            }
            r = x + y;
            console.log('计算结果：' + r);
        }catch (e) {
            alert('输入有误！' + e);
        }




    };




}



